package cn.erbudev;

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
////        List<List<Integer>> result = fission(list, 2, 6);
////        for(List<Integer> l:result){
////            for(int i :l){
////                System.out.print(i+" ");
////            }
////            System.out.println();
////        }
//
//        List<List<Integer>> result = new ArrayList<>();
//        result.add(list);
//        List<Integer[]> breakpointsList = new ArrayList<>();
//        breakpointsList.add(new Integer[]{2, 4});
////        breakpointsList.add(new Integer[]{3, 8});
////        breakpointsList.add(new Integer[]{4, 7});
//
//        for (Integer[] breakpoints : breakpointsList) {
//            List<Integer> target = new ArrayList<>();
//            Iterator<List<Integer>> iter = result.iterator();
//            while (iter.hasNext()) {
//                List<Integer> temp = iter.next();
//                if (temp.contains(breakpoints[0]) && temp.contains(breakpoints[1])) {
//                    target = temp;
//                    iter.remove();
//                    break;
//                }
//            }
//
//            if (target.size() != 0) {
//                List<List<Integer>> r = fission(target, breakpoints[0], breakpoints[1]);
//                result.addAll(r);
//            }
//
//        }
//        for (List<Integer> l : result) {
//            for (int i : l) {
//                System.out.print(i + " ");
//            }
//            System.out.println();
//        }
//
//        list.set(0, list.get(0) + 1);
//        for (int l : list) {
//
//            System.out.print(l + " ");
//
//        }
//        System.out.println();

        for (int index : list) {
            for (int i = index + 2; i < index + list.size()-1  && i < list.size(); i++) {
                System.out.print((i ) + " ");
            }
            System.out.println();
        }
    }


    public static List<List<Integer>> fission(List<Integer> list, int index1, int index2) {
        int minIndex = list.indexOf(index1) < list.indexOf(index2) ? list.indexOf(index1) : list.indexOf(index2);
        int maxIndex = list.indexOf(index1) > list.indexOf(index2) ? list.indexOf(index1) : list.indexOf(index2);
        int listNum2 = list.size() - maxIndex + minIndex;
        List<List<Integer>> result = new ArrayList<>();
        List<Integer> list1 = new ArrayList<>();
        for (int i = minIndex; i <= maxIndex; i++) {
            list1.add(list.get(i));
        }
        result.add(list1);
        List<Integer> list2 = new ArrayList<>();
        for (int i = maxIndex; i <= maxIndex + listNum2; i++) {
            list2.add(list.get(i % list.size()));
        }
        result.add(list2);
        return result;
    }
}
